home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / AEObjects.p < prev    next >
Text File  |  1996-05-01  |  17KB  |  378 lines

  1. {
  2.      File:        AEObjects.p
  3.  
  4.      Contains:    Object Support Interfaces.
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT AEObjects;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __AEOBJECTS__}
  28. {$SETC __AEOBJECTS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC AEObjectsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __OSUTILS__}
  35. {$I OSUtils.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QUICKDRAW__}
  38. {$I Quickdraw.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EPPC__}
  41. {$I EPPC.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __APPLEEVENTS__}
  44. {$I AppleEvents.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __ERRORS__}
  47. {$I Errors.p}
  48. {$ENDC}
  49. {$IFC FOR_SYSTEM7_ONLY }
  50. {$IFC UNDEFINED __MEMORY__}
  51. {$I Memory.p}
  52. {$ENDC}
  53. {$IFC UNDEFINED __EVENTS__}
  54. {$I Events.p}
  55. {$ENDC}
  56. {$ENDC}
  57.  
  58. {$PUSH}
  59. {$ALIGN MAC68K}
  60. {$LibExport+}
  61.  
  62. { ***    LOGICAL OPERATOR CONSTANTS    *** }
  63.  
  64. CONST
  65.     kAEAND                        = 'AND ';                        {   0x414e4420   }
  66.     kAEOR                        = 'OR  ';                        {   0x4f522020   }
  67.     kAENOT                        = 'NOT ';                        {   0x4e4f5420   }
  68.                                                                 { ***    ABSOLUTE ORDINAL CONSTANTS    *** }
  69.     kAEFirst                    = 'firs';                        {   0x66697273   }
  70.     kAELast                        = 'last';                        {   0x6c617374   }
  71.     kAEMiddle                    = 'midd';                        {   0x6d696464   }
  72.     kAEAny                        = 'any ';                        {   0x616e7920   }
  73.     kAEAll                        = 'all ';                        {   0x616c6c20   }
  74.                                                                 { ***    RELATIVE ORDINAL CONSTANTS    *** }
  75.     kAENext                        = 'next';                        {   0x6e657874   }
  76.     kAEPrevious                    = 'prev';                        {   0x70726576   }
  77.                                                                 { ***    KEYWORD CONSTANT     *** }
  78.     keyAECompOperator            = 'relo';                        {   0x72656c6f   }
  79.     keyAELogicalTerms            = 'term';                        {   0x7465726d   }
  80.     keyAELogicalOperator        = 'logc';                        {   0x6c6f6763   }
  81.     keyAEObject1                = 'obj1';                        {   0x6f626a31   }
  82.     keyAEObject2                = 'obj2';                        {   0x6f626a32   }
  83.                                                                 {     ... for Keywords for getting fields out of object specifier records.  }
  84.     keyAEDesiredClass            = 'want';                        {   0x77616e74   }
  85.     keyAEContainer                = 'from';                        {   0x66726f6d   }
  86.     keyAEKeyForm                = 'form';                        {   0x666f726d   }
  87.     keyAEKeyData                = 'seld';                        {   0x73656c64   }
  88.  
  89.                                                                 {     ... for Keywords for getting fields out of Range specifier records.  }
  90.     keyAERangeStart                = 'star';                        {   0x73746172   }
  91.     keyAERangeStop                = 'stop';                        {   0x73746f70   }
  92.                                                                 {     ... special handler selectors for OSL Callbacks.  }
  93.     keyDisposeTokenProc            = 'xtok';                        {   0x78746f6b   }
  94.     keyAECompareProc            = 'cmpr';                        {   0x636d7072   }
  95.     keyAECountProc                = 'cont';                        {   0x636f6e74   }
  96.     keyAEMarkTokenProc            = 'mkid';                        {   0x6d6b6964   }
  97.     keyAEMarkProc                = 'mark';                        {   0x6d61726b   }
  98.     keyAEAdjustMarksProc        = 'adjm';                        {   0x61646a6d   }
  99.     keyAEGetErrDescProc            = 'indc';                        {   0x696e6463   }
  100.  
  101. { ***    VALUE and TYPE CONSTANTS    *** }
  102.                                                                 {     ... possible values for the keyAEKeyForm field of an object specifier.  }
  103.     formAbsolutePosition        = 'indx';                        {   0x696e6478   }
  104.     formRelativePosition        = 'rele';                        {   0x72656c65   }
  105.     formTest                    = 'test';                        {   0x74657374   }
  106.     formRange                    = 'rang';                        {   0x72616e67   }
  107.     formPropertyID                = 'prop';                        {   0x70726f70   }
  108.     formName                    = 'name';                        {   0x6e616d65   }
  109.                                                                 {     ... relevant types (some of these are often pared with forms above).  }
  110.     typeObjectSpecifier            = 'obj ';                        {   0x6f626a20   }
  111.     typeObjectBeingExamined        = 'exmn';                        {   0x65786d6e   }
  112.     typeCurrentContainer        = 'ccnt';                        {   0x63636e74   }
  113.     typeToken                    = 'toke';                        {   0x746f6b65   }
  114.     typeRelativeDescriptor        = 'rel ';                        {   0x72656c20   }
  115.     typeAbsoluteOrdinal            = 'abso';                        {   0x6162736f   }
  116.     typeIndexDescriptor            = 'inde';                        {   0x696e6465   }
  117.     typeRangeDescriptor            = 'rang';                        {   0x72616e67   }
  118.     typeLogicalDescriptor        = 'logi';                        {   0x6c6f6769   }
  119.     typeCompDescriptor            = 'cmpd';                        {   0x636d7064   }
  120.     typeOSLTokenList            = 'ostl';                        {   0x6F73746C   }
  121.  
  122. {  Possible values for flags parameter to AEResolve.  They're additive  }
  123.     kAEIDoMinimum                = $0000;
  124.     kAEIDoWhose                    = $0001;
  125.     kAEIDoMarking                = $0004;
  126.     kAEPassSubDescs                = $0008;
  127.     kAEResolveNestedLists        = $0010;
  128.     kAEHandleSimpleRanges        = $0020;
  129.     kAEUseRelativeIterators        = $0040;
  130.  
  131. { *** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION  }
  132.     typeWhoseDescriptor            = 'whos';                        {   0x77686f73   }
  133.     formWhose                    = 'whos';                        {   0x77686f73   }
  134.     typeWhoseRange                = 'wrng';                        {   0x77726e67   }
  135.     keyAEWhoseRangeStart        = 'wstr';                        {   0x77737472   }
  136.     keyAEWhoseRangeStop            = 'wstp';                        {   0x77737470   }
  137.     keyAEIndex                    = 'kidx';                        {   0x6b696478   }
  138.     keyAETest                    = 'ktst';                        {   0x6b747374   }
  139.  
  140. {
  141. *
  142.     used for rewriting tokens in place of 'ccnt' descriptors
  143.     This record is only of interest to those who, when they...
  144.     ...get ranges as key data in their accessor procs, choose
  145.     ...to resolve them manually rather than call AEResolve again.
  146. *
  147. }
  148.  
  149. TYPE
  150.     ccntTokenRecordPtr = ^ccntTokenRecord;
  151.     ccntTokenRecord = RECORD
  152.         tokenClass:                DescType;
  153.         token:                    AEDesc;
  154.     END;
  155.  
  156.     ccntTokenRecPtr                        = ^ccntTokenRecord;
  157.     ccntTokenRecHandle                    = ^ccntTokenRecPtr;
  158. {$IFC OLDROUTINENAMES }
  159.     DescPtr                                = ^AEDesc;
  160.     DescHandle                            = ^DescPtr;
  161. {$ENDC}
  162. {$IFC FOR_SYSTEM8_PREEMPTIVE }
  163. {$IFC FOR_PTR_BASED_AE }
  164.     OSLToken                            = AEDesc;
  165.     OSLTokenPtr                         = ^OSLToken;
  166.     OSLTokenList                        = AEDesc;
  167.     OSLTokenListPtr                     = ^OSLTokenList;
  168. {  typedefs providing type checking for procedure pointers  }
  169. {  these typedefs must be the same as the system 7 ones  }
  170. {  the system 7 and system 8 callbacks can intermingle  }
  171.     OSLAccessorProcPtr = ProcPtr;  { FUNCTION OSLAccessor(desiredClass: DescType; (CONST)VAR container: AEDesc; containerClass: DescType; form: DescType; (CONST)VAR selectionData: AEDesc; VAR value: AEDesc; accessorRefcon: LONGINT): OSErr; }
  172.  
  173.     OSLCompareProcPtr = ProcPtr;  { FUNCTION OSLCompare(oper: DescType; (CONST)VAR obj1: AEDesc; (CONST)VAR obj2: AEDesc; VAR result: BOOLEAN): OSErr; }
  174.  
  175.     OSLCountProcPtr = ProcPtr;  { FUNCTION OSLCount(desiredType: DescType; containerClass: DescType; (CONST)VAR container: AEDesc; VAR result: LONGINT): OSErr; }
  176.  
  177.     OSLDisposeTokenProcPtr = ProcPtr;  { FUNCTION OSLDisposeToken(VAR unneededToken: AEDesc): OSErr; }
  178.  
  179.     OSLGetMarkTokenProcPtr = ProcPtr;  { FUNCTION OSLGetMarkToken((CONST)VAR dContainerToken: AEDesc; containerClass: DescType; VAR result: AEDesc): OSErr; }
  180.  
  181.     OSLGetErrDescProcPtr = ProcPtr;  { FUNCTION OSLGetErrDesc(VAR appDescPtr: AEDescPtr): OSErr; }
  182.  
  183.     OSLMarkProcPtr = ProcPtr;  { FUNCTION OSLMark((CONST)VAR dToken: AEDesc; (CONST)VAR markToken: AEDesc; index: LONGINT): OSErr; }
  184.  
  185.     OSLAdjustMarksProcPtr = ProcPtr;  { FUNCTION OSLAdjustMarks(newStart: LONGINT; newStop: LONGINT; (CONST)VAR markToken: AEDesc): OSErr; }
  186.  
  187. { -------------------------------------------------------------- PUBLIC PROCEDURES ------------------------------------------------------------------ }
  188. FUNCTION AESetObjectCallbacks(myCompareProc: OSLCompareProcPtr; myCountProc: OSLCountProcPtr; myDisposeTokenProc: OSLDisposeTokenProcPtr; myGetMarkTokenProc: OSLGetMarkTokenProcPtr; myMarkProc: OSLMarkProcPtr; myAdjustMarksProc: OSLAdjustMarksProcPtr; myGetErrDescProcPtr: OSLGetErrDescProcPtr): OSStatus; C;
  189. FUNCTION AEResolve({CONST}VAR objectSpecifier: AEDesc; callbackFlags: SInt16; VAR theToken: AEDesc): OSStatus; C;
  190. FUNCTION AEInstallObjectAccessor(desiredClass: DescType; containerType: DescType; theAccessor: OSLAccessorProcPtr; accessorRefcon: UNIV Ptr; isSysHandler: BOOLEAN): OSStatus; C;
  191. FUNCTION AERemoveObjectAccessor(desiredClass: DescType; containerType: DescType; theAccessor: OSLAccessorProcPtr; isSysHandler: BOOLEAN): OSStatus; C;
  192. FUNCTION AEGetObjectAccessor(desiredClass: DescType; containerType: DescType; VAR accessor: OSLAccessorProcPtr; VAR accessorRefcon: UNIV Ptr; isSysHandler: BOOLEAN): OSStatus; C;
  193. FUNCTION AEDisposeToken(VAR theToken: AEDesc): OSStatus; C;
  194. FUNCTION AECallObjectAccessor(desiredClass: DescType; {CONST}VAR containerToken: AEDesc; containerClass: DescType; keyForm: DescType; {CONST}VAR keyData: AEDesc; VAR token: AEDesc): OSStatus; C;
  195. {  new API  }
  196. FUNCTION AECreateTokenList(resultList: OSLTokenListPtr): OSStatus; C;
  197. FUNCTION AEAppendToTokenList(theTokenList: OSLTokenListPtr; {CONST}VAR addToken: AEDesc): OSStatus; C;
  198. FUNCTION AETokenCount({CONST}VAR theTokenList: OSLTokenList; VAR theCount: ItemCount): OSStatus; C;
  199. FUNCTION AEGetNthToken({CONST}VAR theTokenList: OSLTokenList; index: ItemCount; resultToken: OSLTokenPtr): OSStatus; C;
  200. FUNCTION AEPruneTokenList(keepStart: ItemCount; keepEnd: ItemCount; theTokenList: OSLTokenListPtr): OSStatus; C;
  201. FUNCTION AECallObjectAccessorWithFlags(desiredClass: DescType; {CONST}VAR containerToken: AEDesc; containerClass: DescType; keyForm: DescType; {CONST}VAR keyData: AEDesc; callBackFlags: SInt16; VAR token: AEDesc): OSStatus; C;
  202. FUNCTION AEResolveSubDesc({CONST}VAR objectSpecifier: AESubDesc; callBackFlags: SInt16; VAR theToken: AEDesc): OSStatus; C;
  203. FUNCTION AEInstallObjectCallback(functionClass: AEKeyword; handler: ProcPtr): OSStatus; C;
  204. FUNCTION AERemoveObjectCallback(functionClass: AEKeyword; handler: ProcPtr): OSStatus; C;
  205. FUNCTION AEGetObjectCallback(functionClass: AEKeyword; VAR handler: ProcPtr): OSStatus; C;
  206. {$ENDC}
  207. {$ENDC}
  208. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  209. {$IFC NOT FOR_PTR_BASED_AE }
  210. {  typedefs providing type checking for procedure pointers  }
  211.  
  212. TYPE
  213.     OSLAccessorProcPtr = ProcPtr;  { FUNCTION OSLAccessor(desiredClass: DescType; (CONST)VAR container: AEDesc; containerClass: DescType; form: DescType; (CONST)VAR selectionData: AEDesc; VAR value: AEDesc; accessorRefcon: LONGINT): OSErr; }
  214.  
  215.     OSLCompareProcPtr = ProcPtr;  { FUNCTION OSLCompare(oper: DescType; (CONST)VAR obj1: AEDesc; (CONST)VAR obj2: AEDesc; VAR result: BOOLEAN): OSErr; }
  216.  
  217.     OSLCountProcPtr = ProcPtr;  { FUNCTION OSLCount(desiredType: DescType; containerClass: DescType; (CONST)VAR container: AEDesc; VAR result: LONGINT): OSErr; }
  218.  
  219.     OSLDisposeTokenProcPtr = ProcPtr;  { FUNCTION OSLDisposeToken(VAR unneededToken: AEDesc): OSErr; }
  220.  
  221.     OSLGetMarkTokenProcPtr = ProcPtr;  { FUNCTION OSLGetMarkToken((CONST)VAR dContainerToken: AEDesc; containerClass: DescType; VAR result: AEDesc): OSErr; }
  222.  
  223.     OSLGetErrDescProcPtr = ProcPtr;  { FUNCTION OSLGetErrDesc(VAR appDescPtr: AEDescPtr): OSErr; }
  224.  
  225.     OSLMarkProcPtr = ProcPtr;  { FUNCTION OSLMark((CONST)VAR dToken: AEDesc; (CONST)VAR markToken: AEDesc; index: LONGINT): OSErr; }
  226.  
  227.     OSLAdjustMarksProcPtr = ProcPtr;  { FUNCTION OSLAdjustMarks(newStart: LONGINT; newStop: LONGINT; (CONST)VAR markToken: AEDesc): OSErr; }
  228.  
  229.     OSLAccessorUPP = UniversalProcPtr;
  230.     OSLCompareUPP = UniversalProcPtr;
  231.     OSLCountUPP = UniversalProcPtr;
  232.     OSLDisposeTokenUPP = UniversalProcPtr;
  233.     OSLGetMarkTokenUPP = UniversalProcPtr;
  234.     OSLGetErrDescUPP = UniversalProcPtr;
  235.     OSLMarkUPP = UniversalProcPtr;
  236.     OSLAdjustMarksUPP = UniversalProcPtr;
  237.  
  238. CONST
  239.     uppOSLAccessorProcInfo = $000FFFE0;
  240.     uppOSLCompareProcInfo = $00003FE0;
  241.     uppOSLCountProcInfo = $00003FE0;
  242.     uppOSLDisposeTokenProcInfo = $000000E0;
  243.     uppOSLGetMarkTokenProcInfo = $00000FE0;
  244.     uppOSLGetErrDescProcInfo = $000000E0;
  245.     uppOSLMarkProcInfo = $00000FE0;
  246.     uppOSLAdjustMarksProcInfo = $00000FE0;
  247.  
  248. FUNCTION NewOSLAccessorProc(userRoutine: OSLAccessorProcPtr): OSLAccessorUPP;
  249.     {$IFC NOT GENERATINGCFM }
  250.     INLINE $2E9F;
  251.     {$ENDC}
  252.  
  253. FUNCTION NewOSLCompareProc(userRoutine: OSLCompareProcPtr): OSLCompareUPP;
  254.     {$IFC NOT GENERATINGCFM }
  255.     INLINE $2E9F;
  256.     {$ENDC}
  257.  
  258. FUNCTION NewOSLCountProc(userRoutine: OSLCountProcPtr): OSLCountUPP;
  259.     {$IFC NOT GENERATINGCFM }
  260.     INLINE $2E9F;
  261.     {$ENDC}
  262.  
  263. FUNCTION NewOSLDisposeTokenProc(userRoutine: OSLDisposeTokenProcPtr): OSLDisposeTokenUPP;
  264.     {$IFC NOT GENERATINGCFM }
  265.     INLINE $2E9F;
  266.     {$ENDC}
  267.  
  268. FUNCTION NewOSLGetMarkTokenProc(userRoutine: OSLGetMarkTokenProcPtr): OSLGetMarkTokenUPP;
  269.     {$IFC NOT GENERATINGCFM }
  270.     INLINE $2E9F;
  271.     {$ENDC}
  272.  
  273. FUNCTION NewOSLGetErrDescProc(userRoutine: OSLGetErrDescProcPtr): OSLGetErrDescUPP;
  274.     {$IFC NOT GENERATINGCFM }
  275.     INLINE $2E9F;
  276.     {$ENDC}
  277.  
  278. FUNCTION NewOSLMarkProc(userRoutine: OSLMarkProcPtr): OSLMarkUPP;
  279.     {$IFC NOT GENERATINGCFM }
  280.     INLINE $2E9F;
  281.     {$ENDC}
  282.  
  283. FUNCTION NewOSLAdjustMarksProc(userRoutine: OSLAdjustMarksProcPtr): OSLAdjustMarksUPP;
  284.     {$IFC NOT GENERATINGCFM }
  285.     INLINE $2E9F;
  286.     {$ENDC}
  287.  
  288. FUNCTION CallOSLAccessorProc(desiredClass: DescType; {CONST}VAR container: AEDesc; containerClass: DescType; form: DescType; {CONST}VAR selectionData: AEDesc; VAR value: AEDesc; accessorRefcon: LONGINT; userRoutine: OSLAccessorUPP): OSErr;
  289.     {$IFC NOT GENERATINGCFM}
  290.     INLINE $205F, $4E90;
  291.     {$ENDC}
  292.  
  293. FUNCTION CallOSLCompareProc(oper: DescType; {CONST}VAR obj1: AEDesc; {CONST}VAR obj2: AEDesc; VAR result: BOOLEAN; userRoutine: OSLCompareUPP): OSErr;
  294.     {$IFC NOT GENERATINGCFM}
  295.     INLINE $205F, $4E90;
  296.     {$ENDC}
  297.  
  298. FUNCTION CallOSLCountProc(desiredType: DescType; containerClass: DescType; {CONST}VAR container: AEDesc; VAR result: LONGINT; userRoutine: OSLCountUPP): OSErr;
  299.     {$IFC NOT GENERATINGCFM}
  300.     INLINE $205F, $4E90;
  301.     {$ENDC}
  302.  
  303. FUNCTION CallOSLDisposeTokenProc(VAR unneededToken: AEDesc; userRoutine: OSLDisposeTokenUPP): OSErr;
  304.     {$IFC NOT GENERATINGCFM}
  305.     INLINE $205F, $4E90;
  306.     {$ENDC}
  307.  
  308. FUNCTION CallOSLGetMarkTokenProc({CONST}VAR dContainerToken: AEDesc; containerClass: DescType; VAR result: AEDesc; userRoutine: OSLGetMarkTokenUPP): OSErr;
  309.     {$IFC NOT GENERATINGCFM}
  310.     INLINE $205F, $4E90;
  311.     {$ENDC}
  312.  
  313. FUNCTION CallOSLGetErrDescProc(VAR appDescPtr: AEDescPtr; userRoutine: OSLGetErrDescUPP): OSErr;
  314.     {$IFC NOT GENERATINGCFM}
  315.     INLINE $205F, $4E90;
  316.     {$ENDC}
  317.  
  318. FUNCTION CallOSLMarkProc({CONST}VAR dToken: AEDesc; {CONST}VAR markToken: AEDesc; index: LONGINT; userRoutine: OSLMarkUPP): OSErr;
  319.     {$IFC NOT GENERATINGCFM}
  320.     INLINE $205F, $4E90;
  321.     {$ENDC}
  322.  
  323. FUNCTION CallOSLAdjustMarksProc(newStart: LONGINT; newStop: LONGINT; {CONST}VAR markToken: AEDesc; userRoutine: OSLAdjustMarksUPP): OSErr;
  324.     {$IFC NOT GENERATINGCFM}
  325.     INLINE $205F, $4E90;
  326.     {$ENDC}
  327. { -------------------------------------------------------------- PUBLIC PROCEDURES ------------------------------------------------------------------ }
  328. FUNCTION AEObjectInit: OSErr;
  329. {
  330.  Not done by inline, but by direct linking into code.  It sets up the pack
  331.   such that further calls can be via inline 
  332. }
  333. FUNCTION AESetObjectCallbacks(myCompareProc: OSLCompareUPP; myCountProc: OSLCountUPP; myDisposeTokenProc: OSLDisposeTokenUPP; myGetMarkTokenProc: OSLGetMarkTokenUPP; myMarkProc: OSLMarkUPP; myAdjustMarksProc: OSLAdjustMarksUPP; myGetErrDescProcPtr: OSLGetErrDescUPP): OSErr;
  334.     {$IFC NOT GENERATINGCFM}
  335.     INLINE $303C, $0E35, $A816;
  336.     {$ENDC}
  337. FUNCTION AEResolve({CONST}VAR objectSpecifier: AEDesc; callbackFlags: INTEGER; VAR theToken: AEDesc): OSErr;
  338.     {$IFC NOT GENERATINGCFM}
  339.     INLINE $303C, $0536, $A816;
  340.     {$ENDC}
  341. FUNCTION AEInstallObjectAccessor(desiredClass: DescType; containerType: DescType; theAccessor: OSLAccessorUPP; accessorRefcon: LONGINT; isSysHandler: BOOLEAN): OSErr;
  342.     {$IFC NOT GENERATINGCFM}
  343.     INLINE $303C, $0937, $A816;
  344.     {$ENDC}
  345. FUNCTION AERemoveObjectAccessor(desiredClass: DescType; containerType: DescType; theAccessor: OSLAccessorUPP; isSysHandler: BOOLEAN): OSErr;
  346.     {$IFC NOT GENERATINGCFM}
  347.     INLINE $303C, $0738, $A816;
  348.     {$ENDC}
  349. FUNCTION AEGetObjectAccessor(desiredClass: DescType; containerType: DescType; VAR accessor: OSLAccessorUPP; VAR accessorRefcon: LONGINT; isSysHandler: BOOLEAN): OSErr;
  350.     {$IFC NOT GENERATINGCFM}
  351.     INLINE $303C, $0939, $A816;
  352.     {$ENDC}
  353. FUNCTION AEDisposeToken(VAR theToken: AEDesc): OSErr;
  354.     {$IFC NOT GENERATINGCFM}
  355.     INLINE $303C, $023A, $A816;
  356.     {$ENDC}
  357. FUNCTION AECallObjectAccessor(desiredClass: DescType; {CONST}VAR containerToken: AEDesc; containerClass: DescType; keyForm: DescType; {CONST}VAR keyData: AEDesc; VAR token: AEDesc): OSErr;
  358.     {$IFC NOT GENERATINGCFM}
  359.     INLINE $303C, $0C3B, $A816;
  360.     {$ENDC}
  361. {$ENDC}
  362. {$ENDC}
  363. { -------------------------------------------------------------- END PUBLIC PROCEDURES ------------------------------------------------------- }
  364. { ------------------------------------------------------------------------------------------------------------------------------------------------- }
  365. {   NOTE: To check for the presence of the Object Support Library on PowerPC, use     }
  366. {     the Gestalt selector, gestaltOSLInSystem, which is defined in Gestalt.h/p/a.     }
  367. { ------------------------------------------------------------------------------------------------------------------------------------------------- }
  368. {$ALIGN RESET}
  369. {$POP}
  370.  
  371. {$SETC UsingIncludes := AEObjectsIncludes}
  372.  
  373. {$ENDC} {__AEOBJECTS__}
  374.  
  375. {$IFC NOT UsingIncludes}
  376.  END.
  377. {$ENDC}
  378.